package cn.nukkit.block;

/**
 *  衍生方块父类。<br>
 *  需要注意的是，getDamage() 和 setDamage() 在这里指衍生方块的编号，而不同的衍生方块又表示同一方块的不同类型。<br>
 *  举例：农作物方块中，getDamage()、meta 都表示同一作物的不同状态（称呼成长值会比较恰当），对农作物而言，这个值最大为7。
 *  @author wanne (doc-api-chs )
 */
public abstract class BlockMeta extends Block {
    /** 衍生方块的编号*/
	private int meta;

    protected BlockMeta(int meta) {
        this.meta = meta;
    }

    @Override
    public int getFullId() {
        return (getId() << 4) + getDamage();
    }

    @Override
    public final int getDamage() {
        return this.meta;
    }

    @Override
    public void setDamage(int meta) {
        this.meta = meta;
    }

}